package com.github.prontera.domain;

import java.math.BigDecimal;
import java.time.OffsetDateTime;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.github.prontera.model.BasicDomain;
import com.github.prontera.util.converter.jackson.OffsetDateTimeToIso8601Serializer;

import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 
 * t_client_task-用户任务
 *
 */
@ToString
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class ClientTask extends BasicDomain{

	private static final long serialVersionUID = 1L;
    
	
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
    private String orderNo;
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
    private Long taskId;
	/**
	 * 0:未开始,1:进行中,2:正常结束,3:用户取消
	 */
	@ApiModelProperty(value = "0:未开始,1:进行中,2:正常结束,3:用户取消")
    private Integer status;
	/**
	 * 所属用户
	 */
	@ApiModelProperty(value = "所属用户")
    private Long clientId;
	/**
	 * 奖励发放时间
	 */
	@ApiModelProperty(value = "奖励发放时间")
	 @JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime grantTime;
	/**
	 * 任务结束
	 */
	@ApiModelProperty(value = "任务结束")
	@JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
	private OffsetDateTime endTime;
	/**
	 * 发放方:  0;后台手动,1:系统,2:用户手动
	 */
	@ApiModelProperty(value = "发放方:  0;后台手动,1:系统,2:用户手动")
    private Integer grantType;
	/**
	 * 
	 */
	@ApiModelProperty(value = "")
	 @JsonSerialize(using = OffsetDateTimeToIso8601Serializer.class)
    private OffsetDateTime createTime;
	/**
	 * 0: 待支付,1:已经支付
	 */
	@ApiModelProperty(value = "0: 待支付,1:已经支付")
    private Integer payStatus;
	/**
	 * 任务押金
	 */
	@ApiModelProperty(value = "任务押金")
    private BigDecimal depositAmount;
	/**
	 * 原因
	 */
	@ApiModelProperty(value = "原因")
    private String reason;
	
    
    public ClientTask(){
    
    }
    
    public OffsetDateTime getEndTime() {
		return endTime;
	}

	public void setEndTime(OffsetDateTime endTime) {
		this.endTime = endTime;
	}

	public String getReason() {
		return reason;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public Long getTaskId() {
        return this.taskId;
    }
    
    public void setTaskId(Long taksId) {
        this.taskId = taksId;
    }
    public Integer getStatus() {
        return this.status;
    }
    
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Long getClientId() {
        return this.clientId;
    }
    
    public void setClientId(Long clientId) {
        this.clientId = clientId;
    }
    public OffsetDateTime getGrantTime() {
        return this.grantTime;
    }
    
    public void setGrantTime(OffsetDateTime grantTime) {
        this.grantTime = grantTime;
    }
    public Integer getGrantType() {
        return this.grantType;
    }
    
    public void setGrantType(Integer grantType) {
        this.grantType = grantType;
    }
    public OffsetDateTime getCreateTime() {
        return this.createTime;
    }
    
    public void setCreateTime(OffsetDateTime createTime) {
        this.createTime = createTime;
    }
    public Integer getPayStatus() {
        return this.payStatus;
    }
    
    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }
    public BigDecimal getDepositAmount() {
        return this.depositAmount;
    }
    
    public void setDepositAmount(BigDecimal depositAmount) {
        this.depositAmount = depositAmount;
    }
    
}
